#pragma once
#include "IGameState.h"
#include <vector>
using namespace std;

#include "MenuState.h"

#include "../tinyxml/tinyxml.h"

class CSGD_Direct3D;
class CSGD_DirectInput;
class CBitmapFont;
class CSGD_XAudio2;

struct tOptionsInfo
{
	char szName[12];
	float m_fMusic;
	float m_fSFX;
};

class COptionsState :
	public MenuState
{
public:
	static COptionsState* GetInstance(void);

	virtual void Enter( void );
	virtual void Exit( void );
	virtual bool Input(void);
	virtual void Update(float fElapsedTime);
	virtual void Render(void);

	void SaveVolumes() ;
	void LoadVolumes() ;

private:
	COptionsState(void);
	virtual ~COptionsState(void);
	COptionsState& operator=(const COptionsState& );
	COptionsState( const COptionsState& );

	CSGD_Direct3D*			m_pD3D;
	CSGD_DirectInput*		m_pDI;
	CBitmapFont*			m_pBF;


	int						m_nPointerImgID;
	
	vector<tOptionsInfo> vOptions;

	int m_nBackgroundMusID;
	int m_nSFXID;
	int choice;
	float volume;
	float SFX;
};

